package com.inno.subject.domain.strategy.ai;

import com.inno.subject.common.enums.MockTypeEnum;
import com.inno.subject.domain.entity.InterviewBO;
import com.inno.subject.domain.utils.ApplicationContextUtil;
import com.inno.subject.domain.utils.ChatClientUtil;
import com.inno.subject.domain.websocket.SubjectSocket;
import jakarta.annotation.Resource;
import jakarta.websocket.Session;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
import org.springframework.stereotype.Component;

import java.util.Objects;

/**
 * 技术面试 情景题
 * @author shenzeyang
 */
@Slf4j
@Component
public class SceneHandler implements InterviewMockHandler {
    private static final String SCENE_QUESTION = "你是一位开发技术总监，现在我来公司面试，你是我的面试官，你需要根据我发给你的简历内容中的项目经理或我的自我介绍来问我一些线上会发生的问题的解决方案以及解决思路等。 提问我即可，无需给答案。您只需要提问，由我来回答问题，您只需要判断我的回答是否正确，如果正确您再提问下一题，您每次提问一道题或二道题即可，并且当我问您今天的面试结果是否通过的时候，您需要根据我所答问题的表现，来判断是否可以通过。 好了现在开始面试:\t\t";
    @Resource
    private ChatClientUtil chatClientUtil;

    @Resource
    private ThreadPoolTaskExecutor subjectExecutor;

    @Override
    public String getType() {
        return MockTypeEnum.SCENE.getType();
    }

    @Override
    public void handle(InterviewBO interviewBO) {
        // 引语
        String keyword = MockTypeEnum.SCENE.getKeyword();
        subjectExecutor.submit(()-> this.start(interviewBO,keyword,chatClientUtil,SCENE_QUESTION));
    }
}
